export function carInfoMapMu(param) {
  console.log('车辆id信息: ' + param.clid)
  const car = window.map3DControl.getEntity(param.clid) //拿到之前创建的小车对象
  const viewer = window.map3DControl.viewer
  const allEntity = window.map3DControl.getAllEntity() //获取所有实体类，取高时不把现有的模型算进去。
  const position = Cesium.Cartesian3.fromDegrees(param.jd, param.wd) //把经纬度坐标转成笛卡尔坐标
  //抓取模型瓦片的高度，异步
  viewer.scene.clampToHeightMostDetailed([position], allEntity).then(function (clampedCartesians) {
    let alt = 0
    const ellipsoid = viewer.scene.globe.ellipsoid
    //判断是否有抓取到了倾斜模型上的高度。
    if (clampedCartesians[0] != undefined) {
      const cartographic = ellipsoid.cartesianToCartographic(clampedCartesians[0])
      alt = cartographic.height
    }
    //判断是否能拿到小车的对象，拿不到则说明没有之前没有创建。之前创建了就修改位置信息。
    if (car) {
      //拿到了小车就进这里面，修改位置属性即可

      car.position = Cesium.Cartesian3.fromDegrees(param.jd, param.wd, alt)

      // var prePosition = window.CarMove.carPrePosition.get(param.clid) //  甘肃项目不需要进行转化
      // let newPosition = Cesium.Cartesian3.fromDegrees(param.jd, param.wd, alt)//当前点，转成84
      // window.CarMove.carPrePosition.set(param.clid, newPosition)//更新上次socket传过来的点的位置信息。
      // let heading//朝向
      // let preHeading//上一次的朝向
      // let pointA = {}//上一次传的点的位置信息
      // let pointB = {}//本次传的点的位置信息
      // pointA.lng = prePosition.longitude//上一次传的小车点的位置经度
      // pointA.lat = prePosition.latitude//上一次传的小车点的位置纬度
      // pointB.lng = param.jd//本次传的小车点的位置经度
      // pointB.lat = param.wd//本次传的小车点的位置纬度
      // //判断本次传入的点和现在的点是否是同一个
      // if (pointA.lng == pointB.lng && pointB.lat == pointB.lat) {
      //   heading = window.CarMove.carPreHeading.get(param.clid)//根据车辆的id获取上一次的朝向信息。
      // } else {
      //   heading = window.cesiumMapTool.calculateAngle(pointA, pointB)//根据本次传的点和上一次传的点计算车的行进方向。
      // }
      // window.CarMove.carPreHeading.set(param.clid, heading)//将本次的车辆行进方向保存。
      // let hpr = new Cesium.HeadingPitchRoll((heading - 90) * Math.PI / 180, 0, 0)//封装方法，向东为0度，小车模型车头指向东边。
      // let orientation = Cesium.Transforms.headingPitchRollQuaternion(newPosition, hpr)//车辆朝向

      // // 确保地形挡住Polygon，打开深度检测。
      // viewer.scene.globe.depthTestAgainstTerrain = true;

      // // 确保动画
      // viewer.clock.shouldAnimate = true
      // viewer.clock.clockRange = Cesium.ClockRange.CLAMPED //Loop at the end?
      // // 时间设置
      // let start = viewer.clock.currentTime
      // viewer.clock.multiplier = 1//步幅
      // let minHeight = 1
      // let maxHeight = 300
      // let time = 6//小车运动持续的时间
      // let animationStop = Cesium.JulianDate.addSeconds(start, Number.MAX_SAFE_INTEGER, new Cesium.JulianDate())
      // let stretchHeightProperty = new Cesium.SampledProperty(Number)
      // stretchHeightProperty.addSample(animationStop, maxHeight)
      // stretchHeightProperty.addSample(start, minHeight)
      // stretchHeightProperty.addSample(Cesium.JulianDate.addSeconds(start, time, new Cesium.JulianDate()), maxHeight)

      // //小车动态移动，实时更改坐标点，这里的CallbackProperty是异步
      // car.position = new Cesium.CallbackProperty(function (time, result) {
      //   // console.log("当前值" + stretchHeightProperty.getValue(time));
      //   //动态地计算小车运动过程中的位置点。
      //   if (prePosition.hasOwnProperty('x')) {
      //     prePosition = window.cesiumMapTool.car3ToWGS84(prePosition)
      //   }
      //   let k = stretchHeightProperty.getValue(time) / (maxHeight - minHeight)
      //   let x = prePosition.longitude + (param.jd - prePosition.longitude) * k
      //   let y = prePosition.latitude + (param.wd - prePosition.latitude) * k
      //   let z = prePosition.height + (alt - prePosition.height) * k
      //   let currentPosition = Cesium.Cartesian3.fromDegrees(x, y, z)
      //   console.log([x, y ,z]);

      //   /**小车标牌 动态移动***/
      //   // let signLabel = window.CarMove.overlaysMap.get(param.clid)
      //   // if (signLabel) {
      //   //   signLabel.setPosition([x, y, z + 3])//给标牌设置了位置信息。
      //   // }
      //   window.GOverlayArray[0].overlay.setPosition([x, y, z + 3]);

      //   window.CarMove.overlaysPos.set(param.clid, { lng: x, lat: y, height: z })
      //   window.CarMove.overlaysPos.set(param.clid, [x, y, z])

      //   // console.log(window.CarMove.overlaysPos);
      //   return currentPosition
      // })
      // car.orientation = orientation  //给小车赋值方向属性。
    } else {
      //创建新的小车
      // window.map3DControl.viewer.camera.flyTo({destination: Cesium.Cartesian3.fromDegrees(param.jd, param.wd, 300),}); // 飞入到 罐体标记 处
      window.map3DControl.createStaticModel({
        name: param.clid,
        position: [param.jd, param.wd, alt],
        orientation: {
          heading: 1.7, //Cesium原生方法，向北为0度，小车模型车头指向东边。
          pitch: 0,
          roll: 0,
        },
        model: {
          // uri: param.type == 0 ? '/models/newxfc.gltf' : '/models/whpcl.gltf',
          uri: '/models/newxfc.gltf',
          scale: 2.0,
          distanceDisplayCondition: new Cesium.DistanceDisplayCondition(0, 549),
          // minimumPixelSize: 256,
          // maximumScale: 3,
        },
      })
      // window.CarMove.carPrePosition.set(param.clid, Cesium.Cartesian3.fromDegrees(param.jd, param.wd, alt))//保存小车本次传的小车位置点的位置信息。

      // window.CarMove.carPrePosition.set(param.clid, { longitude: param.jd, latitude: param.wd, height: alt })//保存小车本次传的小车位置点的位置信息。
      // console.log("carPrePosition: " + param.jd);
      // window.CarMove.carPreHeading.set(param.clid, 0)//保存小车本次传的小车点的朝向信息。
    }
  })
}
